上下文工程是Agent成功的关键
Claude Code逆向工程研究 | Drew Breunig等研究成果汇总
核心观点:Agent能否有满意的交付,关键就在于能否理解上下文。
什么是上下文?如果把prompt当成一种指令、一次对话,那么上下文就是为每次对话提供足够的语境支持。
上下文工程挑战:
当模型虚构了工具调用状态信息并被写入上下文时,在多轮循环中,模型可能会把错误信息误认为是事实反复引用。
随着上下文超过10万个token,大模型倾向于多步骤生成推理,而非用于检索。
配置了数十个MCP函数时,调用工具决策的准确性会大幅下降。
多Agent协作时,不同Agent提供的信息可能存在冲突。
| 模块 | 作用 |
|---|---|
| 1. 系统信息内容 | 系统身份、安全策略、交互规范、代码风格、工具指南等 |
| 2. 会话延续上下文 | 之前会话历史、中断原因、八段式压缩上下文 |
| 3. 工具调用和反馈 | 工具调用参数、执行反馈、SubAgent信息、TodoList状态 |
| 4. 已验证关键节点 | 基于工具调用、日志汇总的已完成任务 |
| 5. 用户请求 | 按时间顺序结构化的用户最新请求 |
| 6. 系统信息 | 用户近期操作、打开/点击的文件 |
整个机制流程:
核心步骤:
压缩触发方式(qH1函数):
| 触发方式 | 触发条件 |
|---|---|
| 自动触发 | 主循环调用 wU2 判断达到 token 使用阈值 |
| 手动触发 | 用户输入 /compact 命令,可传递压缩要点 |
| 系统触发 | 系统检测到内存压力超过阈值,触发紧急压缩 |
压缩流程三阶段:
Task工具架构:
| 类型 | 特点 |
|---|---|
| 串行共享Agent | todo + Agent Loop 回调,串行执行,上下文共享 |
| 并行隔离Agent | Task工具,并行执行,上下文不共享 |
避免上下文冲突的三大机制:
Claude Code上下文工程核心要素:
| 核心要素 | 实现方式 | 解决问题 |
|---|---|---|
| 结构化上下文 | 六大模块清晰分层 | 语境混淆 |
| 事件驱动更新 | 实时响应 + 按需注入 | 时效性、准确性 |
| 智能压缩 | 专用压缩模型 + 三阶段压缩 | 上下文过长 |
| 多Agent隔离 | 独立环境 + 单向通信 | 语境冲突 |
| 关键节点验证 | 已验证任务节点记录 | 上下文中毒 |
Questions & Answers
Claude Code上下文工程深度分析